<?php
/**
 * <i>@else</i>组件
 * 
 * 配合<i>@if</i>组件使用
 * 
 * 可以使用的参数有：
 *  无
 *
 * @version $Id: IMintElseComponent.php 312 2008-04-23 16:29:38Z iwind $
 * @package util.mint.component
 */
class IMintElseComponent extends IAbstractMintComponent {
	/**
	 * 取得支持的参数列表
	 *
	 * @return array
	 */	
	public function getSupportedParameters() {
		return array();
	}
	
	/**
	 * 取得HTML属性映射
	 *
	 * @return array
	 * @since 0.0.3
	 */		
	public function getHtmlAttrMapping() {
		return array();
	}	
	
	/**
	 * 检验组件定义
	 *
	 * @return boolean
	 * @since 0.0.3
	 */	
	public function validate() {
		if ($this->getPreviousNode(XML_ELEMENT_NODE)->getAttribute(IMintConfig::$componentAttributeName) != "@if") {
			$this->throwException("@else component must defined after a @if component");
		}
		
		//删除和@if之间的节点
		while(true) {
			$previousNode = $this->getPreviousNode(null);
			if ($previousNode->nodeType != XML_ELEMENT_NODE) {
				$previousNode->parentNode->removeChild($previousNode);
			}
			else {
				break;
			}
		}
		
		return true;
	}
	
	/**
	 * 处理组件
	 *
	 * @return boolean
	 */	
	public function processComponent() {
		$beginText = "<?php else { ?>";
		$endText = "<?php } ?>";
		$this->addAroundScript($beginText, $endText);
		$this->removeNode();
		return true;
	}
}

?>